/* SPDX-FileCopyrightText: © 2024 Decompollaborate */
/* SPDX-License-Identifier: MIT */

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, INVALID)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, NORMAL)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, SPECIAL)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, SPECIAL_RS)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, SPECIAL_SA)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, REGIMM)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, SPECIAL2)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, SPECIAL3)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, SPECIAL3_BSHFL)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP0)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP0_BC0)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP0_TLB)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP1)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP1_BC1)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP1_FPUS)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP1_FPUW)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP2)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP2_BC2)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP2_MFHC2)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP2_MFHC2_P)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP2_MFHC2_P_S)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, COP2_MTHC2)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU0)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU1)

    // VFPU2 doesn't exist?

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU3)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_FMT0)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_FMT2)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_FMT3)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_RND)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_CVTFLT)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_CVTINT)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_FMT8)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_FMT9)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_CONTROL)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_COLOR)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT0_CST)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT2)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU4_FMT2_CNDMOVE)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU5)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU6)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU6_FMT7)
    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU6_FMT7_FMT0)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, VFPU7)

    RABBITIZER_DEF_INSTR_ID_TYPE(R4000ALLEGREX, QUADLR)
